<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>aiengine: xaieio.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">aiengine
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xaieio_8h.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">xaieio.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file contains the generic definitions for the AIE simulator interface. </p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who     Date     Changes
</p>
<hr/>
<p>
1.0  Hyun    07/12/2018  Initial creation
1.1  Nishad  12/05/2018  Renamed ME attributes to AIE
</pre> </div><table class="memberdecls">
<tr class="memitem:ab37487826cc01ed0872186a8180a5381"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#ab37487826cc01ed0872186a8180a5381">XAieIO_Finish</a> (void)</td></tr>
<tr class="memdesc:ab37487826cc01ed0872186a8180a5381"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory IO function to free the global IO instance.  <a href="#ab37487826cc01ed0872186a8180a5381">More...</a><br/></td></tr>
<tr class="separator:ab37487826cc01ed0872186a8180a5381"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c3a871a1b2b2362ba05ee722e16bfb9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#a6c3a871a1b2b2362ba05ee722e16bfb9">XAieIO_Init</a> (void)</td></tr>
<tr class="memdesc:a6c3a871a1b2b2362ba05ee722e16bfb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory IO function to initialize the global IO instance.  <a href="#a6c3a871a1b2b2362ba05ee722e16bfb9">More...</a><br/></td></tr>
<tr class="separator:a6c3a871a1b2b2362ba05ee722e16bfb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a62fad8f5270c2e3a34f3f7f155370a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#a5a62fad8f5270c2e3a34f3f7f155370a">XAieIO_IntrUnregisterIsr</a> (int Offset)</td></tr>
<tr class="memdesc:a5a62fad8f5270c2e3a34f3f7f155370a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function unregisters the interrupt handler for given irq offset.  <a href="#a5a62fad8f5270c2e3a34f3f7f155370a">More...</a><br/></td></tr>
<tr class="separator:a5a62fad8f5270c2e3a34f3f7f155370a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af889ecb39a27c4b30d1a69cc36ebbef8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#af889ecb39a27c4b30d1a69cc36ebbef8">XAieIO_IntrRegisterIsr</a> (int Offset, int(*Handler)(void *Data), void *Data)</td></tr>
<tr class="memdesc:af889ecb39a27c4b30d1a69cc36ebbef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function registers the interrupt handler for given irq offset.  <a href="#af889ecb39a27c4b30d1a69cc36ebbef8">More...</a><br/></td></tr>
<tr class="separator:af889ecb39a27c4b30d1a69cc36ebbef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26b0c57e4a689b70ba70bb60d7214a2a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#a26b0c57e4a689b70ba70bb60d7214a2a">XAieIO_IntrEnable</a> (void)</td></tr>
<tr class="memdesc:a26b0c57e4a689b70ba70bb60d7214a2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function enable interrupt handler.  <a href="#a26b0c57e4a689b70ba70bb60d7214a2a">More...</a><br/></td></tr>
<tr class="separator:a26b0c57e4a689b70ba70bb60d7214a2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac43f086a7416a66c092a5243801208c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#ac43f086a7416a66c092a5243801208c6">XAieIO_IntrDisable</a> (void)</td></tr>
<tr class="memdesc:ac43f086a7416a66c092a5243801208c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function disable interrupt handler.  <a href="#ac43f086a7416a66c092a5243801208c6">More...</a><br/></td></tr>
<tr class="separator:ac43f086a7416a66c092a5243801208c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae317aab30f6ef1344dd0621b3ddceb98"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#ae317aab30f6ef1344dd0621b3ddceb98">_XAieIO_GetIO</a> (void)</td></tr>
<tr class="memdesc:ae317aab30f6ef1344dd0621b3ddceb98"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory IO function to get a low level IO instance.  <a href="#ae317aab30f6ef1344dd0621b3ddceb98">More...</a><br/></td></tr>
<tr class="separator:ae317aab30f6ef1344dd0621b3ddceb98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4481b2533655b9ebc94a40d5f9e6bf5"><td class="memItemLeft" align="right" valign="top">uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#ad4481b2533655b9ebc94a40d5f9e6bf5">XAieIO_Read32</a> (uint64_t Addr)</td></tr>
<tr class="memdesc:ad4481b2533655b9ebc94a40d5f9e6bf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory IO function to read 32bit data from the specified address.  <a href="#ad4481b2533655b9ebc94a40d5f9e6bf5">More...</a><br/></td></tr>
<tr class="separator:ad4481b2533655b9ebc94a40d5f9e6bf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78f754b37422868c7b431234feb9cfa7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#a78f754b37422868c7b431234feb9cfa7">XAieIO_MemFinish</a> (XAieIO_Mem *IO_MemInstPtr)</td></tr>
<tr class="memdesc:a78f754b37422868c7b431234feb9cfa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO memory function to free the memory instance.  <a href="#a78f754b37422868c7b431234feb9cfa7">More...</a><br/></td></tr>
<tr class="separator:a78f754b37422868c7b431234feb9cfa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85e6b21591a48394d76e35e98e285996"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#a85e6b21591a48394d76e35e98e285996">XAieIO_MemDetach</a> (XAieIO_Mem *IO_MemInstPtr)</td></tr>
<tr class="memdesc:a85e6b21591a48394d76e35e98e285996"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO memory function to detach the memory from device.  <a href="#a85e6b21591a48394d76e35e98e285996">More...</a><br/></td></tr>
<tr class="separator:a85e6b21591a48394d76e35e98e285996"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9f5b8cd80c8ecb1e712d918c4550f25"><td class="memItemLeft" align="right" valign="top">XAieIO_Mem *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#ac9f5b8cd80c8ecb1e712d918c4550f25">XAieIO_MemAttach</a> (uint64_t Vaddr, uint64_t Paddr, uint64_t Size, uint64_t MemHandle)</td></tr>
<tr class="memdesc:ac9f5b8cd80c8ecb1e712d918c4550f25"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO memory function to attach the external memory to device.  <a href="#ac9f5b8cd80c8ecb1e712d918c4550f25">More...</a><br/></td></tr>
<tr class="separator:ac9f5b8cd80c8ecb1e712d918c4550f25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f5b625f689831da6ad4d39f4d6a2929"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#a2f5b625f689831da6ad4d39f4d6a2929">XAieIO_MemFree</a> (XAieIO_Mem *IO_MemInstPtr)</td></tr>
<tr class="memdesc:a2f5b625f689831da6ad4d39f4d6a2929"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO memory function to free the memory.  <a href="#a2f5b625f689831da6ad4d39f4d6a2929">More...</a><br/></td></tr>
<tr class="separator:a2f5b625f689831da6ad4d39f4d6a2929"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab475d2b04f5268305656617068168f73"><td class="memItemLeft" align="right" valign="top">uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#ab475d2b04f5268305656617068168f73">XAieIO_MemSyncForCPU</a> (XAieIO_Mem *IO_MemInstPtr)</td></tr>
<tr class="memdesc:ab475d2b04f5268305656617068168f73"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO memory function to sync the memory for CPU.  <a href="#ab475d2b04f5268305656617068168f73">More...</a><br/></td></tr>
<tr class="separator:ab475d2b04f5268305656617068168f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d3a2cfe82d6c6df96d16050db90e069"><td class="memItemLeft" align="right" valign="top">uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#a0d3a2cfe82d6c6df96d16050db90e069">XAieIO_MemSyncForDev</a> (XAieIO_Mem *IO_MemInstPtr)</td></tr>
<tr class="memdesc:a0d3a2cfe82d6c6df96d16050db90e069"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO memory function to sync the memory for device.  <a href="#a0d3a2cfe82d6c6df96d16050db90e069">More...</a><br/></td></tr>
<tr class="separator:a0d3a2cfe82d6c6df96d16050db90e069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84634833c90abfa18957153102eb0dd7"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#a84634833c90abfa18957153102eb0dd7">XAieIO_MemGetSize</a> (XAieIO_Mem *IO_MemInstPtr)</td></tr>
<tr class="memdesc:a84634833c90abfa18957153102eb0dd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO memory function to return the size of the memory instance.  <a href="#a84634833c90abfa18957153102eb0dd7">More...</a><br/></td></tr>
<tr class="separator:a84634833c90abfa18957153102eb0dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5834983efb50f1dc572d390dd21bf5c"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#aa5834983efb50f1dc572d390dd21bf5c">XAieIO_MemGetVaddr</a> (XAieIO_Mem *IO_MemInstPtr)</td></tr>
<tr class="memdesc:aa5834983efb50f1dc572d390dd21bf5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO memory function to return the mapped virtual address of the memory instance.  <a href="#aa5834983efb50f1dc572d390dd21bf5c">More...</a><br/></td></tr>
<tr class="separator:aa5834983efb50f1dc572d390dd21bf5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ee75f154d7eb5645f598f9061c10e4e"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#a2ee75f154d7eb5645f598f9061c10e4e">XAieIO_MemGetPaddr</a> (XAieIO_Mem *IO_MemInstPtr)</td></tr>
<tr class="memdesc:a2ee75f154d7eb5645f598f9061c10e4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO memory function to return the physical address of the memory instance.  <a href="#a2ee75f154d7eb5645f598f9061c10e4e">More...</a><br/></td></tr>
<tr class="separator:a2ee75f154d7eb5645f598f9061c10e4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af748a6479ac7fa1f09de2f272ff9464c"><td class="memItemLeft" align="right" valign="top">uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#af748a6479ac7fa1f09de2f272ff9464c">XAieIO_MemRead32</a> (XAieIO_Mem *IO_MemInstPtr, uint64_t Addr)</td></tr>
<tr class="memdesc:af748a6479ac7fa1f09de2f272ff9464c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO memory function to read from the physical address.  <a href="#af748a6479ac7fa1f09de2f272ff9464c">More...</a><br/></td></tr>
<tr class="separator:af748a6479ac7fa1f09de2f272ff9464c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a325e2bb67f987f8d9aa585b3993ad63e"><td class="memItemLeft" align="right" valign="top">uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaieio_8h.html#a325e2bb67f987f8d9aa585b3993ad63e">XAieIO_NPIRead32</a> (uint64_t Addr)</td></tr>
<tr class="memdesc:a325e2bb67f987f8d9aa585b3993ad63e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the NPI IO function to read 32bit data from the specified address.  <a href="#a325e2bb67f987f8d9aa585b3993ad63e">More...</a><br/></td></tr>
<tr class="separator:a325e2bb67f987f8d9aa585b3993ad63e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ae317aab30f6ef1344dd0621b3ddceb98"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* _XAieIO_GetIO </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory IO function to get a low level IO instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A void pointer that points to the low level IO instance.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function is for internal use only, and not meant to be used by applications. </dd></dl>

</div>
</div>
<a class="anchor" id="ab37487826cc01ed0872186a8180a5381"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieIO_Finish </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory IO function to free the global IO instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The global IO instance is a singleton and freed when the reference count reaches a zero. </dd></dl>

<p>Referenced by <a class="el" href="xaieio_8h.html#af889ecb39a27c4b30d1a69cc36ebbef8">XAieIO_IntrRegisterIsr()</a>, <a class="el" href="xaieio_8h.html#a5a62fad8f5270c2e3a34f3f7f155370a">XAieIO_IntrUnregisterIsr()</a>, <a class="el" href="xaieio_8c.html#a4dd5b2c08face034b55c0debe6b4ea32">XAieIO_MemAllocate()</a>, <a class="el" href="xaieio_8h.html#ac9f5b8cd80c8ecb1e712d918c4550f25">XAieIO_MemAttach()</a>, <a class="el" href="xaieio_8h.html#a85e6b21591a48394d76e35e98e285996">XAieIO_MemDetach()</a>, <a class="el" href="xaieio_8h.html#a78f754b37422868c7b431234feb9cfa7">XAieIO_MemFinish()</a>, and <a class="el" href="xaieio_8h.html#a2f5b625f689831da6ad4d39f4d6a2929">XAieIO_MemFree()</a>.</p>

</div>
</div>
<a class="anchor" id="a6c3a871a1b2b2362ba05ee722e16bfb9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieIO_Init </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory IO function to initialize the global IO instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The global IO instance is a singleton and any further attempt to initialize just increments the reference count. </dd></dl>

<p>Referenced by <a class="el" href="xaieio_8h.html#af889ecb39a27c4b30d1a69cc36ebbef8">XAieIO_IntrRegisterIsr()</a>, <a class="el" href="xaieio_8c.html#a4dd5b2c08face034b55c0debe6b4ea32">XAieIO_MemAllocate()</a>, <a class="el" href="xaieio_8h.html#ac9f5b8cd80c8ecb1e712d918c4550f25">XAieIO_MemAttach()</a>, <a class="el" href="xaieio_8c.html#a99db5b40113892429c691e6f8b3d63cd">XAieIO_MemInit()</a>, and <a class="el" href="xaielib_8h.html#afdc31b0bb30d8c0015f40e5ac047b8cd">XAieLib_InitDev()</a>.</p>

</div>
</div>
<a class="anchor" id="ac43f086a7416a66c092a5243801208c6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieIO_IntrDisable </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function disable interrupt handler. </p>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

<p>Referenced by <a class="el" href="xaielib_8h.html#a031ef63ed9e87c225efe4f5e3f561d16">XAieLib_InterruptDisable()</a>.</p>

</div>
</div>
<a class="anchor" id="a26b0c57e4a689b70ba70bb60d7214a2a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieIO_IntrEnable </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function enable interrupt handler. </p>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

<p>Referenced by <a class="el" href="xaielib_8h.html#a582a288d8a8069159ceb9b04377c3b91">XAieLib_InterruptEnable()</a>.</p>

</div>
</div>
<a class="anchor" id="af889ecb39a27c4b30d1a69cc36ebbef8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XAieIO_IntrRegisterIsr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *Data)&#160;</td>
          <td class="paramname"><em>Handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>Data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function registers the interrupt handler for given irq offset. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Offset,:</td><td>The value should one of 1 - 3. Current it's not used. </td></tr>
    <tr><td class="paramname">Handler,:</td><td>the callback to be called upon interrupt. </td></tr>
    <tr><td class="paramname">Data,:</td><td>the data to be used with the handler.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XAIELIB_SUCCESS for success, XAIELIB_FAILURE otherwise.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The driver doesn't support all 4 interrupts yet, so the offset is not used. The handler is registerd as global one, so it isn't allowed to register more than one handlers. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ab37487826cc01ed0872186a8180a5381">XAieIO_Finish()</a>, and <a class="el" href="xaieio_8c.html#a6c3a871a1b2b2362ba05ee722e16bfb9">XAieIO_Init()</a>.</p>

<p>Referenced by <a class="el" href="xaielib_8h.html#aa7974c44601a26bad42ba24f065bd8a9">XAieLib_InterruptRegisterIsr()</a>.</p>

</div>
</div>
<a class="anchor" id="a5a62fad8f5270c2e3a34f3f7f155370a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieIO_IntrUnregisterIsr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Offset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function unregisters the interrupt handler for given irq offset. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Offset,:</td><td>The value should one of 1 - 3. Current it's not used.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The driver doesn't support all 4 interrupts yet, so the offset is not used. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ab37487826cc01ed0872186a8180a5381">XAieIO_Finish()</a>.</p>

<p>Referenced by <a class="el" href="xaielib_8h.html#a050413bfaa37d3a5cb33e3d28f927b57">XAieLib_InterruptUnregisterIsr()</a>.</p>

</div>
</div>
<a class="anchor" id="ac9f5b8cd80c8ecb1e712d918c4550f25"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XAieIO_Mem* XAieIO_MemAttach </td>
          <td>(</td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>Vaddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>Paddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>MemHandle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO memory function to attach the external memory to device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Vaddr,:</td><td>Optional. Vaddr of the memory </td></tr>
    <tr><td class="paramname">Paddr,:</td><td>Optional. Paddr of the memory </td></tr>
    <tr><td class="paramname">Size,:</td><td>Required. Size of the memory </td></tr>
    <tr><td class="paramname">MemHandle,:</td><td>Required. Handle of the memory. For linux, dmabuf fd</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the attached IO memory instance.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ab37487826cc01ed0872186a8180a5381">XAieIO_Finish()</a>, and <a class="el" href="xaieio_8c.html#a6c3a871a1b2b2362ba05ee722e16bfb9">XAieIO_Init()</a>.</p>

<p>Referenced by <a class="el" href="xaielib_8h.html#a8e887225c745371597ae2515530f983d">XAieLib_MemAttach()</a>.</p>

</div>
</div>
<a class="anchor" id="a85e6b21591a48394d76e35e98e285996"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieIO_MemDetach </td>
          <td>(</td>
          <td class="paramtype">XAieIO_Mem *&#160;</td>
          <td class="paramname"><em>IO_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO memory function to detach the memory from device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IO_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ab37487826cc01ed0872186a8180a5381">XAieIO_Finish()</a>.</p>

<p>Referenced by <a class="el" href="xaielib_8h.html#a26933d7f13e7c467e5a7ea4271a97355">XAieLib_MemDetach()</a>.</p>

</div>
</div>
<a class="anchor" id="a78f754b37422868c7b431234feb9cfa7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieIO_MemFinish </td>
          <td>(</td>
          <td class="paramtype">XAieIO_Mem *&#160;</td>
          <td class="paramname"><em>IO_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO memory function to free the memory instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IO_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>is freed and invalid after this function. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ab37487826cc01ed0872186a8180a5381">XAieIO_Finish()</a>.</p>

<p>Referenced by <a class="el" href="xaielib_8h.html#a106094fbb36a4012f4ec0294b5a0ff76">XAieLib_MemFinish()</a>.</p>

</div>
</div>
<a class="anchor" id="a2f5b625f689831da6ad4d39f4d6a2929"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieIO_MemFree </td>
          <td>(</td>
          <td class="paramtype">XAieIO_Mem *&#160;</td>
          <td class="paramname"><em>IO_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO memory function to free the memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IO_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ab37487826cc01ed0872186a8180a5381">XAieIO_Finish()</a>.</p>

<p>Referenced by <a class="el" href="xaielib_8h.html#a3efba84a30d14c0462290f204478d0a4">XAieLib_MemFree()</a>.</p>

</div>
</div>
<a class="anchor" id="a2ee75f154d7eb5645f598f9061c10e4e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t XAieIO_MemGetPaddr </td>
          <td>(</td>
          <td class="paramtype">XAieIO_Mem *&#160;</td>
          <td class="paramname"><em>IO_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO memory function to return the physical address of the memory instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IO_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Physical address of the memory instance</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xaielib_8h.html#aea3f9953cbc8c187778c470ca6769fa5">XAieLib_MemGetPaddr()</a>.</p>

</div>
</div>
<a class="anchor" id="a84634833c90abfa18957153102eb0dd7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t XAieIO_MemGetSize </td>
          <td>(</td>
          <td class="paramtype">XAieIO_Mem *&#160;</td>
          <td class="paramname"><em>IO_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO memory function to return the size of the memory instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IO_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size of the memory instance</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xaielib_8h.html#a6bf65559dc840f9bc99c590c22ccc8a6">XAieLib_MemGetSize()</a>.</p>

</div>
</div>
<a class="anchor" id="aa5834983efb50f1dc572d390dd21bf5c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t XAieIO_MemGetVaddr </td>
          <td>(</td>
          <td class="paramtype">XAieIO_Mem *&#160;</td>
          <td class="paramname"><em>IO_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO memory function to return the mapped virtual address of the memory instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IO_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Mapped virtual address.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xaielib_8h.html#a688990bada010988a122c7dddeff8b20">XAieLib_MemGetVaddr()</a>.</p>

</div>
</div>
<a class="anchor" id="af748a6479ac7fa1f09de2f272ff9464c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32 XAieIO_MemRead32 </td>
          <td>(</td>
          <td class="paramtype">XAieIO_Mem *&#160;</td>
          <td class="paramname"><em>IO_MemInstPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>Addr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO memory function to read from the physical address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IO_MemInstPtr,:</td><td>IO Memory instance pointer. </td></tr>
    <tr><td class="paramname">Addr,:</td><td>Absolute physical address to read from.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A read 32 bit data.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xaielib_8h.html#ac10c320fe83e569cf219db253ded58c9">XAieLib_MemRead32()</a>.</p>

</div>
</div>
<a class="anchor" id="ab475d2b04f5268305656617068168f73"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8 XAieIO_MemSyncForCPU </td>
          <td>(</td>
          <td class="paramtype">XAieIO_Mem *&#160;</td>
          <td class="paramname"><em>IO_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO memory function to sync the memory for CPU. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IO_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This only works with imported or allocated memory. This doesn't do anything with memory from the own memory pool, ex <a class="el" href="xaieio_8c.html#a99db5b40113892429c691e6f8b3d63cd" title="This is the IO memory function to initialize the IO memory instance. ">XAieIO_MemInit()</a>. </dd></dl>

<p>Referenced by <a class="el" href="xaielib_8h.html#af536ba7a5fa1a2230ff31c2c53cc3fd8">XAieLib_MemSyncForCPU()</a>.</p>

</div>
</div>
<a class="anchor" id="a0d3a2cfe82d6c6df96d16050db90e069"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8 XAieIO_MemSyncForDev </td>
          <td>(</td>
          <td class="paramtype">XAieIO_Mem *&#160;</td>
          <td class="paramname"><em>IO_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO memory function to sync the memory for device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">IO_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This only works with imported or allocated memory. This doesn't do anything with memory from the own memory pool, ex <a class="el" href="xaieio_8c.html#a99db5b40113892429c691e6f8b3d63cd" title="This is the IO memory function to initialize the IO memory instance. ">XAieIO_MemInit()</a>. </dd></dl>

<p>Referenced by <a class="el" href="xaielib_8h.html#aafd523535beadf2efbcd76d4e23d749c">XAieLib_MemSyncForDev()</a>.</p>

</div>
</div>
<a class="anchor" id="a325e2bb67f987f8d9aa585b3993ad63e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32 XAieIO_NPIRead32 </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the NPI IO function to read 32bit data from the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to read from.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>32-bit read value.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This only work if NPI is accessble. </dd></dl>

<p>Referenced by <a class="el" href="xaielib_8c.html#ad0a0197362dc2f915f5f21684760bd0f">XAieLib_NPIMaskWrite32()</a>, and <a class="el" href="xaielib_8h.html#a479677997332b0bffab48ac25ccf9159">XAieLib_NPIRead32()</a>.</p>

</div>
</div>
<a class="anchor" id="ad4481b2533655b9ebc94a40d5f9e6bf5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32 XAieIO_Read32 </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory IO function to read 32bit data from the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to read from.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>32-bit read value.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xaieio_8c.html#ad676a59ee96d28c1dcf3f1e332ab1e87">XAieIO_Read128()</a>, <a class="el" href="xaielib_8h.html#aea8f2e8219b0446aed5136335954632f">XAieLib_MaskWrite32()</a>, <a class="el" href="xaielib_8h.html#a6c4151c74c8c8c287d2f2d7e8b2c3308">XAieLib_Read128()</a>, and <a class="el" href="xaielib_8h.html#a820be016043929d0c727ca1ebea73733">XAieLib_Read32()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
